/*
    js采用自动垃圾回收机制
        4.3.1 标记清理
            当变量进入上下文，比如在函数中声明一个变量，那么这个变量就会被加上存在于上下文的标记。而不存在上下文的变量，逻辑上讲永远不应该释放他们的内存。
            因为只要上下文的代码在运行时就有可能用到他们。当变量离开上下文的时候就会加上上下文标记。
        4.3.2 引用计数
            对每个值都记录它的引用次数。声明变量并给它赋一个引用值，这个值的引用数为1。如果这个值又赋给另一个变量，引用值再加1.
            同理，如果保存该值的变量被其他值所覆盖了，那么引用数减一。
        4.3.3 性能

        4.3.4 内存管理
            解除引用：全局变量设置为null释放内存，局部变量在超出作用域后释放内存。
            1.通过const和let声明提升性能
            2.隐藏类和删除操作
            3.内存泄漏：最常见的是闭包场景和命名了大量的全局变量
            4.静态分配与对象池




































































*/